
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>日志存储、图片处理与备份方案 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>日志存储、图片处理与备份方案 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">策略</div>
          <div class="card-question">当使用OSS进行日志存储时，推荐的冷热数据分层存储方案是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">策略</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">推荐结合 Elasticsearch 和 OSS 构建冷热数据分层存储方案。具体做法是：将最近7天的“热”数据存入Elasticsearch以支持高效查询；将超过7天的“冷”数据存入OSS进行归档以降低成本；当需要查询历史日志时，通过异步任务从OSS加载数据进行分析。</div>
          </div>
          <div class="card-source">来源: 1.2 适合 OSS 的日志存储策略 - 日志查询优化</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">OSS如何通过生命周期策略来自动化管理日志，以降低长期存储成本？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">通过配置生命周期规则，OSS可以自动将数据转换到更经济的存储类别。例如，可以将超过30天的日志从标准存储转为低频访问存储（IA），将超过90天的日志转为归档存储，并设置过期时间（如180天）自动删除。</div>
          </div>
          <div class="card-source">来源: 1.2 适合 OSS 的日志存储策略 - 日志清理策略</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">模式</div>
          <div class="card-question">在图片处理方案中，OSS与CDN是如何协同工作的，各自扮演什么角色？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">模式</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">这是一种高效、低成本的图片存储方案。OSS负责存储原始图片，保证数据的可靠性和持久性；CDN则作为内容分发网络，缓存OSS中的图片，将内容分发至离用户最近的节点，从而提高图片加载速度，优化用户体验。</div>
          </div>
          <div class="card-source">来源: 2.2 OSS 结合 CDN 进行优化</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">如何在不修改OSS上原始图片文件的情况下，实现动态缩放或裁剪？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">可以通过在图片的访问URL末尾添加特定的处理参数来实现。例如，使用 `?x-oss-process=image/resize,w_300` 可以将图片宽度缩放至300像素；使用 `?x-oss-process=image/crop,x_100,y_100,w_200,h_200` 可以进行裁剪。</div>
          </div>
          <div class="card-source">来源: 2.3 动态图片处理</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">策略</div>
          <div class="card-question">为了防止单点故障导致的数据丢失，OSS提供了哪种多地域备份策略？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">策略</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">OSS提供了跨区域复制（Cross-Region Replication）功能。通过配置该功能，可以将一个存储桶（Bucket）中的数据自动、异步地复制到另一个不同地域的存储桶中，从而确保数据在多个地域都拥有副本，有效防止单点故障。</div>
          </div>
          <div class="card-source">来源: 3.2 OSS 数据备份策略 - 多地域备份</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">企业级系统在进行日志存储时通常会面临哪三大挑战？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">日志存储通常面临三大挑战：1. 存储成本高，因为日志数据量庞大；2. 查询性能低，随着日志增长查询会变慢；3. 数据生命周期管理复杂，需要定期清理或归档旧日志。</div>
          </div>
          <div class="card-source">来源: 1.1 日志存储的挑战</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">相比传统磁盘存储，使用OSS进行日志存储有哪些核心优势？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">使用OSS进行日志存储具有成本低、容量弹性、可靠性高等优势。它特别适用于长时间存档和批量查询的日志分析场景。</div>
          </div>
          <div class="card-source">来源: 1.2 适合 OSS 的日志存储策略</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">文档中列举了导致数据丢失的三种常见原因是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">导致数据丢失的三种常见原因是：1. 人为误操作（如误删、误覆盖）；2. 存储设备故障（如服务器宕机、磁盘损坏）；3. 恶意攻击（如勒索软件、黑客入侵）。</div>
          </div>
          <div class="card-source">来源: 3.1 数据丢失的常见原因</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">模式</div>
          <div class="card-question">在设计OSS日志存储结构时，推荐采用什么样的路径划分方式？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">模式</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">推荐采用按时间、模块、环境来划分日志的存储路径。例如，一个典型的路径结构是 `/logs/{app_name}/{env}/{yyyy-MM}/{dd}/logfile.log`，这种结构便于管理和按需查询。</div>
          </div>
          <div class="card-source">来源: 1.2 适合 OSS 的日志存储策略 - 日志存储结构设计</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
